
#include <stdlib.h>
#include <string.h>

#include "Termino.h"

struct _Termino {
	char* nombre;
	int offsetDatos;
};

// Crea un termino_T
Termino_t* Termino_crear (char* nombre, int offset) {
	
	Termino_t* termino = malloc (sizeof (Termino_t));
	if (!termino) return NULL;
	
	termino->nombre = malloc( sizeof (char) * strlen(nombre) + 1 );
	if (!termino->nombre) { 
		free (termino);
		return NULL;
	}
	
	strcpy (termino->nombre, nombre);
	termino->offsetDatos = offset;
	
	return termino;
}

char* Termino_obtenerNombre(Termino_t* termino) {
	if (!termino) return NULL;
	return (termino->nombre);
}

int Termino_ObtenerOffset(Termino_t* termino) {
	if (!termino) return -1;
	return (termino->offsetDatos);
}

int Termino_Comparar (Termino_t* termino1, Termino_t* termino2) {
	if(!termino1 || !termino2) return -99;  //sia alguno de lso terminos es nulo devuelve -10 pq -1 reservado por <
	return strcmp (termino1->nombre, termino2->nombre);
}

//destruye el termino_t
void Termino_destruir(Termino_t* termino) {
	if (!termino) return;
	free (termino->nombre);
	free (termino);
}
